好,第7天。到今天你可能忍不住要動手寫程式了,不過今天只有介紹一點點程式。如果要開始練習程式,比較輕鬆的是安裝 Anaconda Navigator,然後就能用 jupyter 了,當然也可以用 command 視窗直接執行 python 檔。
不過當我玩的很開心時,發現我小小的文書機,似乎跑不動較複雜的模型。像跑 yolo 影片辨識時,4個cpu全部滿載,螢幕還轉成暗灰色,哈,好卡(也許可能我的程式有問題)。那時我就在想是不是該買片 GPU 來裝,正當我灰心時,發現了這個 Google Colaboratory。他有 GPU 可以用,我丟影片給 yolo 跑時,很順利的辨識完成。哈,所以今天要來介紹這個。
網路上已經有很多介紹的好文了,不過因為是筆記,所以我要再打一遍,加深記憶。你可以跳過中間一大段,哈。
讓我們先來認識一下這是什麼。
Colaboratory 是一個免費的 Jupyter 筆記本環境,不需要進行任何設置就可以使用,並且完全在雲端運行。借助 Colaboratory,您可以編寫和執行代碼、保存和共享分析結果,以及利用強大的計算資源,所有這些都可通過瀏覽器免費使用。
與 Google 雲端硬碟的結合的軟體,是一種數據分析工具。可將代碼,輸出和描述性文本組合到一個協作檔案中。
簡單的說就是你只要有google帳號你就可以開始玩深度學習的程式了。
日本的網友 tomo_makes 做了張家族譜,可以很容易的了解 Colaboratory 發展的過程,感謝他 XD。(傳送門)
從圖來看,約2012年代的 IPython 得到了極大的發展,但是 IPython 的核心是 python,那時還有 Julia 跟 R。於是有個非營利組織想說,那是不是可以把這幾個結合在一起。於是在設計架構時,把 server 跟核心切開,你要執行時再看你指定那個核心,再把程式丟給那個核心執行完再把結果丟回來。因為核心切開了,所以可以指定任何支援的語言核心。像下圖綠色的部份(詳情請參考這)。
。
所以在取名時就把 Julia,python,R合在一起,變成 Jupyter。因為 Jupyter 的發音跟木星很像,所以 logo 就用了木星的意像。
Jupyter 項目,是一個非營利組織,旨在「為數十種程式語言的交互式計算開發開源軟體,開放標準和服務」
既然核心可以多個,那在社群的努力之下,從Jupyter的官網可以看他們已經支援很多主流的語言。
之後 Google Cloud Datalab 也支援了 Jupyter, 後來 Colaboratory 也被 Google 接管整合進雲端硬碟。datalab 裡的 Jupyter 跟 Colaboratory 有線連接,應該是指可以互通的意思?Jupyterhub與 JupyterLab 則因要支援多人與增進IDE 而發展的分支。
好,歷史簡單介紹完。那要怎麼使用呢。
這個真的非常方便,你開你的 Google 雲端硬碟,看設定的地方,它本身就連接好了應用程式。
但是你在“新增”選項是看不到它的。
有幾個方式可以讓“新增”選單出現 Colab 的選項,最簡單的就是連到 colab.research.google.com,從彈出的視窗下方,去新增一個python3記事本。
它會在你的硬碟新增一個閃亮亮的 Colab Notebooks 黃色資料夾,之後你在網路上複制的 Colab 範例檔,都會加到這裡來。從右邊詳細資料的地方,可以看到是 Google Colaboratory 建立的。
之後你在“新增”選單,就可以看到 Google Colaboratory 啦。
好,那我們開始寫程式吧,今天只先簡單介紹介面跟必要用的部份。
這是Colab的長相,跟 jupyter notebook 一樣,主要由文本,程式碼與執行結果區塊組合而成。比較常做的動作就是紅框的部份。蠻直覺簡單的就不多做說明了。主要是檢查右上角看看你是連到那個 Server 去。
重要的設定,會決定會連到那個 Server。
今天只要知道怎麼執行 Linux Command 還有怎麼跟雲端硬碟交換檔案就好了。
大部分linux命令在前面加上“!”都能實現
Top 跟 kill 的指令也蠻常用到的,尤其在看 Tensorboard 的時候。
嗯 swift 核心?看來你是可以加裝其他核心,但可惜目前 Colab 的設定就只開放 python2,3。
第二就是練習跟雲端硬碟交換檔案, 因為Colab有個缺點,因為他最多連線12小時,而且如果超90分鐘沒動作,連線就會被踢掉,所以你訓練的權重檔要定期備份回雲端硬碟。不然就白訓練了。
連接雲端硬碟的指令可以用 pydrive 操作更細的動作,不過我們先簡單的mount就好,第一次執行要先連到他顯示的網址去取得金鑰再貼回來。
剩下指令可以參考官網的範例檔。
https://colab.research.google.com/notebooks/welcome.ipynb
上周開Colab時發現它多了程式碼自動填充的功能,好樣的,有用心的研發團隊。
好,第7天,打完。
參考
How IPython and Jupyter Notebook work
Jupyter wiki
【秒速で無料GPUを使う】深層学習実践Tips on Colaboratory